#!/bin/sh -e
#
#    mem_swap: show the current swap available and used
#
#    Copyright (C) 2010 Canonical Ltd.
#    Copyright (C) 2011-2014 Dustin Kirkland
#
#    Authors: Dustin Kirkland <kirkland@byobu.org>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, version 3 of the License.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.

__swap_detail() {
	cat /proc/meminfo
}

__swap() {
	local stotal="" sfree="" name="" val="" unit="" mem="" f="";
	while read name val unit; do
		if [ "$name" = "SwapTotal:" ]; then
			stotal="$val"
		elif [ "$name" = "SwapFree:" ]; then
			sfree="$val"
		else
			continue
		fi
		[ -n "$stotal" -a -n "$sfree" ] && break;
	done < /proc/meminfo
	if [ "${stotal:-0}" = "0" ]; then
		printf ""
		rm -f "$BYOBU_RUN_DIR/status.$BYOBU_BACKEND/swap"
	else
		mem=${stotal}
		f=$(((100*($stotal-$sfree))/$stotal))
		if [ $mem -ge 1048576 ]; then
		fpdiv "${mem}" 1048576 1
			mem=${_RET}
			unit="$ICON_GB"
		elif [ $mem -ge 1024 ]; then
			fpdiv "${mem}" 1024 0
			mem=${_RET}
			unit="$ICON_MB"
		else
			mem="$mem"
			unit="$ICON_KB"
		fi
		[ -n "$mem" ] || return
		color b G k; printf "s%s" "$mem"; color -; color G k; printf "%s" "$unit"; color -;
		color b G k; printf "%s" "$f"; color -; color G k; printf "%s" "$PCT"; color --
	fi
}

# vi: syntax=sh ts=4 noexpandtab
